/**
@author		Jong Min, Lee
@date		  01/21/2014
@breif		interface for viewer module

copyright(c) Tae Young Soft. All right reserved. 2014
*/
#pragma once

#include "Taurus_Xml/XmlFunc.h"

//forward declarations
class IWorklistModule;
class IAppGlobalInstanceSet;
class CMonitor;

/**
@brief interface for viewer module
*/
class IViewerModule
{
public:
  /**
  @brief		Initialize viewer module
  @param		pInstanceSet pointer to application global instance set
  @return		ERROR_SUCCESS upon success, an error code otherwise
  */
  virtual DWORD init(IAppGlobalInstanceSet* pInstanceSet) = 0;

  /**
  @brief		destroy viewer module
  @return		ERROR_SUCCESS upon success, an error code otherwise
  */
  virtual DWORD destroy(void) = 0;

  /**
  @brief		set viewer property
  @param		pProfileDoc pointer to viewer property xml document
  @return		ERROR_SUCCESS upon success, an error code otherwise
  */
  virtual DWORD setProperty(MSXML2::IXMLDOMDocument2Ptr pPreopertyDoc) = 0;

  /**
  @brief		show viewer on specfied monitor
  @param		pMonitor pointer to monitor
  @return		ERROR_SUCCESS upon success, an error code otherwise
  */
  virtual DWORD ShowViewer(const CMonitor* pMonitor) = 0;
};

